<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // this -> 函数内置参数,所有的函数都有, 一般指向函数调用时依存的对象
    // (1) 一般情况下,普通函数(命名函数/匿名函数)的this指向window (调用时没有依存的对象)
    // (2) 函数调用时有依存的对象,指向依存的对象 (谁调用就指向谁, 调用时属于谁就指向谁  => 函数就是一条狗) 
    //     obj.fn   btn.onclick (事件中的this指向绑的事件的元素)
    
    
    /* function fn() {
        console.log("函数执行了", this);
    }
    fn();  // window.fn()  => window可以省略

    var arr = [1, 2, 3, function () {
        console.log("函数执行了", this);
    }]
    arr[3]();

    var obj = {
        a: 1,
        b: 2,
        fn: function () {
            console.log("函数执行了", this);
        }
    }
    obj.fn();


    document.onclick = function(){
        console.log("函数执行了",this);
    } */


    function fn() {
        console.log("函数执行了", this);
    }
    var arr = [1, 2, 3, fn]
    var obj = {
        a: 1,
        b: 2,
        fn:fn
    }
    document.onclick = fn;

    fn();  // window.fn()  => window可以省略
    arr[3]();
    obj.fn();

    


</script>

</html>